home *** CD-ROM | disk | FTP | other *** search
/ The Great Museums of Europe / The Great Museums of Europe - Disc 2.iso / setfiles / setup.mst < prev    next >
Text File  |  1996-01-09  |  26KB  |  800 lines

  1. '***********************************************************************
  2. '*                       MSSetup Telemedia                             *
  3. '***********************************************************************
  4.  
  5. '$DEFINE DEBUG   ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9. '$INCLUDE 'setst.inc'
  10.  
  11.  
  12. ''Dialog ID's
  13. CONST ASKQUIT      = 200                  
  14. CONST DESTPATH     = 300
  15. CONST EXITQUIT     = 600
  16. CONST EXITSUCCESS  = 700
  17. CONST APPHELP      = 900
  18. CONST RESTART      = 2600
  19. CONST RESTARTII    = 2700
  20. CONST TOOBIG       = 6300
  21. CONST BADPATH      = 6400
  22.  
  23. ''**** Optional Dialog ID┤s ***
  24. ''        |       | Dest. dir.    
  25. ''    NR    | OPTIONS | selectable
  26. ''        |      | by User
  27. ''     ----------------------------
  28. ''    6250     | NO      | YES
  29. ''    6251     | NO      | NO
  30. ''    6252     | 2       | YES
  31.  
  32. CONST TELEINST     = 6251
  33. ''*****************************
  34.  
  35. ''QuickTime ***************************************
  36. ''Dialog ID┤s
  37.     CONST NUKEOLD       = 101          ''  WARNING FOR OLDER VERSIONS
  38.     CONST OLDMESS       = 102          '' MODELESS DIALOGUE BOX FOR OLDER VERSIONS
  39. ''String id's
  40.     CONST STR_PLAYER    = 1024         ''Movie Player
  41.     CONST STR_VIEWER    = 1025         ''Picture Viewer
  42.     CONST STR_GROUP     = 1026         ''Program Manager group
  43.     CONST STR_TITLE     = 1027         ''Installer Title
  44.     CONST STR_MSG1      = 1028         ''Version error message part 1
  45.     CONST STR_MSG2      = 1029         ''Version error message part 2
  46.     CONST STR_MSG3      = 1030         ''Remove obsolete files?
  47.     CONST STR_WARNING   = 1031         ''Warning
  48.     CONST STR_HELP      = 1032         ''Help
  49.     CONST STR_SAMPLE    = 1033         ''Sample movie
  50. rem Miscellaneous Constants
  51. rem -----------------------
  52.     CONST FILES_REMOVED = 1
  53.     CONST FILES_SKIPPED = 2
  54.     CONST NOSPACE = 1                  ''No space to complete install
  55.     CONST INSTALLFAILED =3
  56.  
  57. rem Global Variables
  58. rem ----------------
  59.  
  60.     GLOBAL SECTIONKEY$                 ''INF file section key
  61.     GLOBAL SUCCESS%                    ''Installation completion code
  62.     GLOBAL QTHELPPROC$                   ''Help dialog procedure
  63.  
  64. ''QUICKTIME END********************************
  65.  
  66.  
  67. ''Video for Windows****************************
  68. GLOBAL WinSys32Dir$
  69. ''Video for Windows END************************
  70.  
  71.  
  72. GLOBAL SRCDIR$
  73. GLOBAL DEST$            ''Default destination directory.
  74. GLOBAL WINDRIVE$        ''Windows drive letter.
  75. GLOBAL WINDIR$
  76. GLOBAL WINSYSDIR$
  77. GLOBAL NEEDET&
  78. GLOBAL DRVSPACE&
  79. GLOBAL OnNT$
  80. GLOBAL ADDVFW
  81. GLOBAL ADDQT
  82. GLOBAL ADDSHARE
  83.  
  84. ''** SWITCHES **    ''0=No    
  85. ADDVFW    = 0           ''1=Yes
  86. ADDQT     = 1           ''2=ask user
  87. ADDSHARE  = 0
  88. ''**************        
  89.  
  90. GLOBAL VFWPATH$            '' Var. for Path, where VFW is Located on CD
  91. GLOBAL QTPATH$            '' Var. for Path, where QT is Located on CD
  92.  
  93. ''CustInst list symbol names
  94.  
  95. ''Dialog list symbol names
  96. GLOBAL CHECKSTATES$
  97. GLOBAL STATUSTEXT$
  98. GLOBAL DRIVETEXT$
  99.  
  100.  
  101. DECLARE SUB BuildCopyList
  102. DECLARE SUB CalculateCopyList
  103. DECLARE SUB SetDriveStatus
  104. DECLARE SUB RegisterEntries
  105. DECLARE SUB CreateIniEntries
  106. DECLARE SUB SetupProgman
  107.  
  108. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  109.  
  110. DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
  111. DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER
  112. DECLARE SUB Reboot LIB "iniupd.dll"
  113. DECLARE fUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  114.  
  115. ''QuickTime ***************************************
  116. DECLARE FUNCTION GetQTWVersion LIB "setupenu.dll" (szDLL$) AS INTEGER
  117. DECLARE FUNCTION GetResourceString LIB "setupenu.dll" (szResource$, idString%) AS INTEGER
  118. DECLARE FUNCTION StartCustomSetup LIB "setupenu.dll" (hinst%, hwnd%) AS INTEGER
  119. DECLARE FUNCTION StopCustomSetup LIB "setupenu.dll" (hinst%, hwnd%) AS INTEGER
  120. DECLARE FUNCTION WritePrivateProfileString LIB "krnl386.exe" (szSect$, szEntry$, szString$, szINI$) AS INTEGER
  121. DECLARE FUNCTION CheckForOld AS INTEGER
  122. DECLARE FUNCTION RemoveOldQTFiles (FilePath$) AS INTEGER
  123. DECLARE FUNCTION CheckForSpace (DrivePath$) AS INTEGER
  124. ''QUICKTIME END********************************
  125.  
  126.  
  127. TRAP CleanupTrap From "MSSHLSTF.DLL"
  128.  
  129. End Trap           
  130.         
  131.  
  132. ''****************************************************
  133. ''************** Background Screen *******************
  134. ''****************************************************
  135.         Inst% = HinstFrame()
  136.         ii% = CreateCover(0, 0, 0, 0, 0)
  137.  
  138.         ret% = Ctl3dRegister(Inst%)
  139.         ret% = Ctl3dAutoSubClass(Inst%)
  140.  
  141.         hSetup = InitSetup(COMMAND$)
  142.         hWnd% = HwndFrame()
  143.         ret% = SubSetMainWin(hWnd%)
  144.         ii% = CloseCover()
  145. ''****************************************************
  146.  
  147.     WIN32ENABLED% = 0
  148.     MajorVer% = GetWindowsMajorVersion()
  149.     MinorVer% = GetWindowsMinorVersion()
  150.  
  151. ''***** CHECKING WINDOWS VERSION (>3.1 requested)*****
  152.     IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  153.         i% = DoMsgBox("Une version Microsoft Windows version 3.10 est nΘcessaire pour actionner ce programme.", "ProblΦme d'installation", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  154.         END
  155.     END IF
  156. ''****************************************************
  157.  
  158. ''***** CHECKING COLOR RESOLUTION (>256 requested)****
  159.  
  160.     IF DeviceColor() <= 16 THEN
  161.        ii% = DoMsgBox("Veuillez rΘgler votre numΘro vidΘo de couleurs sur 256", "Hardware", MB_OK)
  162.        GOTO QUIT
  163.     END IF
  164. ''****************************************************
  165.  
  166.  
  167. ON ERROR GOTO QUIT
  168.  
  169.  
  170. INIT:
  171.  
  172.     CUIDLL$ = "mscuistf.dll"            ''custom user interface dll
  173.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  174.  
  175.     SetTitle "The Great Museums of Europe"
  176.  
  177.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  178.     IF szInf$ = "" THEN
  179.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  180.     END IF
  181.  
  182.     ReadInfFile szInf$
  183.  
  184.     WINDRIVE$ = UCASE$(MID$(GetWindowsDir, 1, 1))
  185.     WINDIR$ = GetWindowsDir()
  186.     WINSYSDIR$ = GetWindowsSysDir()
  187.  
  188.  
  189. ''********SOURCE AND DESTINATION PATH SETTINGS********
  190.     VFWPATH$ = "DRIVER\VFW\"
  191.     DEST$ = WINDIR$
  192.     QTPATH$ = "DRIVER\QTW201\"
  193. ''****************************************************
  194.  
  195. ''QUICKIME********************************************
  196. rem Initialize global variables
  197. rem --------------------------
  198.     
  199.     EXTRACOSTS$     = "ExtraCosts"
  200.     SECTIONKEY$     = "SectionKey"
  201.     SUCCESS%        = INSTALLFAILED
  202. ''QUICKIME********************************************
  203.  
  204. ''Video for Windows****************************
  205. IF ADDVFW <> 0 THEN                        
  206. WinSys32Dir$ = WinDir$ + "system32"
  207.     IF OnWindowsNT() THEN
  208.       OnNT$ = "TRUE"
  209.       WowVersion$ = GetVersionOfFile(WinSys32Dir$ + "\wowexec.exe")
  210.       IF WowVersion$ = "" THEN
  211.          i% = DoMsgBox("Video fⁿr Windows LΣuft nicht unter Windows NT 3.1.  Bitte aktualisieren sie ihr Windows.", "Problema d'installazione", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  212.          END
  213.       END IF
  214.         END IF
  215. END IF
  216. ''Video for Windows END************************
  217.  
  218.     ''CustInst list symbols
  219.  
  220.     CHECKSTATES$ = "CheckItemsState"
  221.     STATUSTEXT$  = "StatusItemsText"
  222.     DRIVETEXT$   = "DriveStatusText"
  223.  
  224.  
  225.     FOR i% = 1 TO 2 STEP 1
  226.         AddListItem CHECKSTATES$, ""
  227.     NEXT i%
  228.  
  229.     FOR i% = 1 TO 2 STEP 1
  230.         AddListItem STATUSTEXT$, ""
  231.     NEXT i%
  232.  
  233.     FOR i% = 1 TO 2 STEP 1
  234.         AddListItem DRIVETEXT$, ""
  235.     NEXT i%
  236.  
  237.     ReplaceListItem DRIVETEXT$, 2, DEST$
  238.     ReplaceListItem CHECKSTATES$, 1, "ON"  ''** Default checked Radio-Button
  239.     ReplaceListItem CHECKSTATES$, 2, "OFF" 
  240.  
  241.     SetDriveStatus
  242.  
  243.  
  244. CUSTINST:
  245.     sz$ = UIStartDlg(CUIDLL$, TELEINST, "FTeleInstDlgProc", APPHELP, HELPPROC$)
  246.  
  247.     IF sz$ = "CONTINUE" THEN
  248.         ''Install only if it will fit.
  249.                 BuildCopyList
  250.                 CalculateCopyList
  251.                 IF NEEDET& <> 0 THEN
  252.                         GOSUB TOOBIG
  253.                         GOTO CUSTINST
  254.                 END IF
  255.         UIPop 1
  256.         GOTO INSTALL
  257.     ELSEIF sz$ = "PATH" THEN
  258.         GOTO GETPATH
  259.     ELSEIF sz$ = "CHK1" THEN
  260.         GOTO CUSTINST
  261.     ELSEIF sz$ = "CHK2" THEN
  262.         GOTO CUSTINST
  263.     ELSEIF sz$ = "REACTIVATE" THEN
  264.         SetDriveStatus
  265.         GOTO CUSTINST
  266.     ELSE
  267.         GOSUB ASKQUIT
  268.         GOTO CUSTINST
  269.     END IF
  270.  
  271.  
  272.  
  273. INSTALL:
  274.  
  275. ''****** ASK USER FOR INSTALL DRIVERS ******
  276. IF ADDVFW = 2 THEN
  277.     i% = DoMsgBox("Per funzionare correttamente questo programma richiede Video per Windows versione 1.1e" + CHR$(10) + "Volete installarlo? ", "Setup", 4 +MB_ICONHAND) 
  278.     if i% = 6 THEN 
  279.           ADDVFW = 1
  280.         ELSE
  281.           ADDVFW = 0
  282.         END IF
  283. END IF
  284.  
  285. IF ADDQT = 2 THEN
  286.     i% = DoMsgBox("Per funzionare correttamente questo programma richiede QuickTime per Windows versione 2.0" + CHR$(10) + "Volete installarlo? ", "Setup", 4 +MB_ICONHAND) 
  287.     if i% = 6 THEN 
  288.       ADDQT = 1
  289.     ELSE        
  290.       ADDQT = 0
  291.     END IF
  292. END IF
  293.  
  294. IF (MajorVer% = 3 AND MinorVer% < 12 AND ADDSHARE = 2) THEN
  295.     i% = DoMsgBox("Fⁿr diese Applikation ben÷tigt man 'SHARE'" + CHR$(10) + "M÷chten sie, da▀ das Setup 'VSHARE.386' installiert? ", "Setup", 4 +MB_ICONHAND) 
  296.     if i% = 6 THEN 
  297.       ADDSHARE = 1
  298.     ELSE        
  299.       ADDSHARE = 0
  300.     END IF
  301. END IF
  302. ''******************************************       
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309. ''****** Create Destination Directories ******
  310. ''    CreateDir DEST$, cmoNone                      '' Default
  311.     
  312.   IF TELEINST = 6252 THEN
  313.     IF GetListItem(CHECKSTATES$, 1) = "ON" THEN   '' OPTION 1
  314.  
  315.     END IF
  316.     
  317.     IF GetListItem(CHECKSTATES$, 2) = "ON" THEN   '' OPTION 2
  318.  
  319.     END IF
  320.   END IF
  321. ''********************************************
  322.  
  323.     BuildCopyList
  324.     SetRestartDir WinDir$
  325.     CopyFilesInCopyList
  326.     CreateIniEntries
  327.     RegisterEntries
  328.     SetupProgman
  329.  
  330.     RESTRT% = RestartListEmpty ()
  331.     Exe$ = DEST$ + "\_msrstrt.exe"
  332.     Batch$ = DEST$ + "\_mssetup.bat"
  333.     empty$ = ""
  334.  
  335.  
  336. RESTART:
  337. IF RESTRT% = 0 THEN
  338.         sz$ = UIStartDlg(cuidll$, RESTART, "FInfo0DlgProc", 0, "")
  339.         IF sz$ = "REACTIVATE" THEN
  340.                 GOTO RESTART
  341.         ENDIF
  342.         I% = ExitExecRestart ()
  343.         RemoveFile Exe$, cmoForce
  344.         RemoveFile Batch$, cmoForce
  345.         END
  346. ELSE
  347.         sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "")
  348.         IF sz$ = "CONTINUE" THEN
  349.                 I% = ExitWindowsExec (Exe$, empty$)
  350.                 IF I% = 0 THEN
  351.                         GOTO RESTART
  352.                 ELSE
  353.                         END
  354.                 ENDIF
  355.         ELSEIF sz$ = "EXIT" THEN
  356.                 UIPopAll
  357.                 END
  358.         ELSEIF sz$ = "REACTIVATE" THEN
  359.                 GOTO RESTART
  360.         ELSE
  361.                 UIPop 1
  362.         END IF
  363. END IF
  364.  
  365.  
  366. QUIT:
  367.     ''ON ERROR GOTO ERRQUIT
  368.  
  369.     IF ERR = 0 THEN
  370.         dlg% = EXITSUCCESS
  371.     ELSEIF ERR = STFQUIT THEN
  372.         dlg% = EXITQUIT
  373.     ELSE
  374.         dlg% = EXITQUIT          ''EXITFAILURE
  375.     END IF
  376.  
  377.  
  378. ERRQUIT:
  379.     i% = DoMsgBox("The Great Museums of Europe is not installed properly!", "Installation Error", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  380.     END
  381.  
  382.  
  383.  
  384. GETPATH:
  385.     SetSymbolValue "EditTextIn", DEST$
  386.     SetSymbolValue "EditFocus", "END"
  387. GETPATHL1:
  388.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  389.  
  390.     IF sz$ = "CONTINUE" THEN
  391.         olddest$ = DEST$
  392.         DEST$ = GetSymbolValue("EditTextOut")
  393.  
  394.         ''Validate new path.
  395.         IF IsDirWritable(DEST$) = 0 THEN
  396.             GOSUB BADPATH
  397.             GOTO GETPATHL1
  398.         END IF
  399.         UIPop 1
  400.  
  401.         ''Truncate display if too long.
  402.         IF LEN(DEST$) > 23 THEN
  403.             ReplaceListItem DRIVETEXT$, 2, MID$(DEST$, 1, 23)+"..."
  404.         ELSE
  405.             ReplaceListItem DRIVETEXT$, 2, DEST$
  406.         END IF
  407.  
  408.         ''Recalc if path changed.
  409.         IF (olddest$ <> DEST$) AND (olddest$ <> DEST$+"\") AND (olddest$+"\" <> DEST$) THEN
  410.             SetDriveStatus
  411.         END IF
  412.  
  413.         olddest$ = ""
  414.         GOTO CUSTINST
  415.     ELSEIF sz$ = "REACTIVATE" THEN
  416.         SetDriveStatus
  417.         GOTO GETPATHL1
  418.     ELSEIF sz$ = "EXIT" THEN
  419.         GOSUB ASKQUIT
  420.         GOTO GETPATHL1
  421.     ELSE
  422.         UIPop 1
  423.         GOTO CUSTINST
  424.     END IF
  425.  
  426.  
  427.  
  428. TOOBIG:
  429.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  430.     IF sz$ = "REACTIVATE" THEN
  431.         SetDriveStatus
  432.         GOTO TOOBIG
  433.     END IF
  434.     UIPop 1
  435.     RETURN
  436.  
  437.  
  438.  
  439. BADPATH:
  440.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  441.     IF sz$ = "REACTIVATE" THEN
  442.         SetDriveStatus
  443.         GOTO BADPATH
  444.     END IF
  445.     UIPop 1
  446.     RETURN
  447.  
  448.  
  449.  
  450. ASKQUIT:
  451.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  452.  
  453.     IF sz$ = "EXIT" THEN
  454.         UIPopAll
  455.         ERROR STFQUIT
  456.     ELSEIF sz$ = "REACTIVATE" THEN
  457.         GOTO ASKQUIT
  458.     ELSE
  459.         UIPop 1
  460.     END IF
  461.     RETURN
  462.  
  463.  
  464.  
  465. SUB CalculateCopyList STATIC
  466.         NEEDET& = GetCopyListCost("", "", "")   
  467. END SUB
  468.  
  469. SUB SetupProgman STATIC
  470.         '' Todo Add Progman Commands
  471.  
  472.         CreateProgmanGroup "Multimedia from E.M.M.E.", "", cmoOverwrite
  473.         ShowProgmanGroup "Multimedia from E.M.M.E.", 1, cmoNone
  474.         CreateProgmanItem "Multimedia from E.M.M.E.", "Great Museums II", MakePath(SRCDIR$,"Museums.exe"),MakePath(SRCDIR$,"setfiles\Icona2.ico"), cmoOverwrite 
  475.         CreateProgmanItem "Multimedia from E.M.M.E.", "Read me", MakePath(SRCDIR$,"Readme.wri"),MakePath(SRCDIR$,"Readme.wri"), cmoOverwrite 
  476.  
  477.  
  478. END SUB
  479.  
  480.  
  481. ''**********************************************
  482. ''*************  BUILD COPYLIST   **************
  483. ''**********************************************
  484. SUB BuildCopyList STATIC
  485.  
  486.     SRCDIR$  = GetSymbolValue("STF_SRCDIR")
  487.     source$ = MakePath(srcdir$, "\")        
  488.     
  489.     ClearCopyList
  490.                                                                         
  491. '' **Default Files**
  492.  
  493.  
  494.      IF TELEINST = 6252 THEN
  495. '' **Optional Files 1**
  496.         IF GetListItem(CHECKSTATES$, 1) = "ON" THEN                     
  497.  
  498. '' **Optional Files 2**
  499.         ELSEIF GetListItem(CHECKSTATES$, 2) = "ON" THEN                 
  500.                 
  501.         END IF
  502.      END IF
  503.  
  504. '' **SWITCHES**
  505.         IF ADDVFW <> 0 THEN                        
  506.         '' Video for Windows Files
  507.     VFWSRC$= MakePath(SRCDIR$, VFWPATH$)    
  508.  
  509.     '' Remove DCISVGA file
  510.         AddSectionFilesToCopyList "remove", VFWSRC$, WinSysDir$
  511.  
  512.     ''  Do not install OLE or MPlayer if on next release of NT or Windows
  513.         IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN            'These files not necessary on Windows NT
  514.         AddSectionFilesToCopyList "MPlayer", VFWSRC$, WinDir$
  515.         AddSectionFilesToCopyList "OLE2", VFWSRC$, WinSysDir$
  516.         END IF
  517.         AddSectionFilesToCopyList "VfW Runtime", VFWSRC$, WinSysDir$
  518.         AddSectionFilesToCopyList "ACM Drivers", VFWSRC$, WinSysDir$
  519.         AddSectionFilesToCopyList "AVICodecs", VFWSRC$, WinSysDir$
  520.         IF OnNT$ = "TRUE" THEN
  521.         AddSectionFilesToCopyList "NT MSVideo", VFWSRC$, WinSys32Dir$
  522.         ENDIF           
  523.  
  524.         END IF
  525.  
  526.         IF ADDQT = 1 THEN
  527.         QTSRC$= MakePath(SRCDIR$, QTPATH$)    
  528.         AddSectionFilesToCopyList "Winexe", QTSRC$, WINDIR$
  529.         AddSectionFilesToCopyList "Files", QTSRC$, WINSYSDIR$
  530.  
  531.     j% = CheckForOld()
  532.     END IF
  533.  
  534.     IF ADDSHARE = 1 THEN
  535.         AddSectionFilesToCopyList "VSHARE", SOURCE$, WINSYSDIR$
  536.     END IF
  537.  
  538. END SUB
  539.  
  540. ''**********************************************
  541. ''*************  Write INI-Entries *************
  542. ''**********************************************
  543. SUB CreateIniEntries STATIC
  544.  
  545. '' Default Entries
  546.         
  547.     ini$ = MakePath(WINDIR$, "viaggio.INI")
  548.         CreateIniKeyValue WinDir$ + "viaggio.INI","path", "directoryimmagini", MID$(srcdir$,1,3), cmoOverwrite
  549.        CreateIniKeyValue WinDir$ + "viaggio.INI","path", "databasedirectory", dest$, cmoOverwrite
  550.         valore$ = GetIniKeyString(WinDir$ + "system.ini", "mci", "WaveAudio")
  551.     valore$ = LCASE$(MID$(RTRIM$(LTRIM$(valore$)),1,11))
  552.     IF valore$ = "mciwave.drv" THEN
  553.         CreateIniKeyValue WinDir$ + "system.ini", "mci", "WaveAudio", "mciwave.drv 9", cmoOverwrite
  554.     END IF 
  555.     IF (MajorVer% = 3 AND MinorVer% < 12 AND ADDSHARE = 1) THEN
  556.                 CreateIniKeyValue WinDir$ + "system.ini", "386enh", "device", "vshare.386", cmoOverwrite
  557.         END
  558.     END IF
  559.  
  560.         
  561.      IF TELEINST = 6252 THEN
  562.         IF GetListItem(CHECKSTATES$, 1) = "ON" THEN
  563. '' Optional Entries 1
  564.  
  565.         ELSEIF GetListItem(CHECKSTATES$, 2) = "ON" THEN
  566. '' Optional Entries 2
  567.  
  568.         END IF
  569.      END IF
  570.  
  571.         IF ADDVFW <> 0 THEN                        
  572. '' Video for Windows Entries
  573.  
  574.     IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN
  575.         IF VflatdPresent() = 0 THEN
  576.             CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite
  577.         END IF
  578.         END IF
  579.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV32", "ir32.dll", cmoOverwrite
  580.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "ir32.dll", cmoOverwrite
  581.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "ir21.dll", cmoOverwrite
  582.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "iyvu9.dll", cmoOverwrite
  583.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  584.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  585.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  586.         CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  587.         CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  588.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  589.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  590.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  591.         CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "ir21.dll", "Intel Indeo(TM) Video R2.1", cmoOverwrite
  592.         CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  593.         CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  594.         CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  595.     
  596.         END IF
  597.  
  598.         IF ADDQT = 1 THEN
  599.            CreateIniKeyValue "WIN.INI", "Extensions", "mov", MakePath(WINDIR$,"player.exe") + " ^.mov", cmoOverwrite
  600.            CreateIniKeyValue "WIN.INI", "Extensions", "pic", MakePath(WINDIR$,"viewer.exe") + " ^.pic", cmoOverwrite
  601.            CreateIniKeyValue "WIN.INI", "MCI Extensions", "mov", "QTWVideo", cmoOverwrite
  602.            CreateIniKeyValue "WIN.INI", "MCI Extensions", "pic", "QTWVideo", cmoOverwrite
  603.            CreateIniKeyValue "WIN.INI", "MCI Extensions", "jpg", "QTWVideo", cmoOverwrite
  604.            i% = WritePrivateProfileString("MCI", "QTWVideo", MakePath(WINSYSDIR$, "mciqtw.drv"), "SYSTEM.INI")
  605.  
  606.         rem Compatibility hacks.
  607.            i% = WritePrivateProfileString("Macx", "DeviceBitmap", "OFF", "SYSTEM.INI")
  608.            CreateIniKeyValue "WIN.INI", "Mach", "devicebitmap", "off", cmoOverwrite    
  609.     
  610.     END IF
  611.  
  612. END SUB
  613.  
  614.  
  615. SUB RegisterEntries STATIC
  616.  
  617.         '' Default Registers
  618.     
  619.      IF TELEINST = 6252 THEN
  620.     IF GetListItem(CHECKSTATES$, 1) = "ON" THEN
  621.         '' Optional Entries 1
  622.  
  623.         ELSEIF GetListItem(CHECKSTATES$, 2) = "ON" THEN
  624.         '' Optional Entries 2
  625.  
  626.         END IF
  627.      END IF
  628.      
  629.     IF ADDVFW <> 0 THEN                        
  630.         '' Video for Windows Entries
  631.  
  632.         IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN
  633.             Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
  634.             Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
  635.             Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))
  636.         END IF
  637.             Run ("profdisp.exe")           
  638.     END IF
  639.  
  640.     IF ADDQT = 1 THEN                        
  641.         '' Quicktime for Windows Entries
  642.            RUN MakePath(WINDIR$, "player.exe") + " install"
  643.            RUN MakePath(WINDIR$, "viewer.exe") + " install"
  644.  
  645.         rem Create QTW.INI
  646.         rem ----------------
  647.            ini$ = MakePath(WINDIR$, "QTW.INI")
  648.            CreateIniKeyValue ini$, "QuickTime for Windows", "Implementation", "Full" , cmoOverwrite
  649.            RemoveIniKey ini$, "video", "optimize", cmoNone
  650.     END IF
  651.  
  652. END SUB
  653.  
  654.  
  655. SUB SetDriveStatus STATIC
  656.  
  657.     free& = GetFreeSpaceForDrive(MID$(DEST$, 1, 1))
  658.     ReplaceListItem DRIVETEXT$, 1, STR$(free& / 1024) + " K"
  659.  
  660. END SUB
  661.  
  662. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  663.     IF szDir$ = "" THEN
  664.         MakePath = szFile$
  665.     ELSEIF szFile$ = "" THEN
  666.         MakePath = szDir$
  667.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  668.         MakePath = szDir$ + szFile$
  669.     ELSE
  670.         MakePath = szDir$ + "\" + szFile$
  671.     END IF
  672. END FUNCTION
  673.  
  674.  
  675. ''*********************************************************
  676. rem Check for Older versions of the Quicktime For Windows components
  677. rem ---------------------------------------------------------------
  678. FUNCTION CheckForOld STATIC AS INTEGER
  679.  
  680.     UIPOP 1
  681.     sz$ = UIStartDlg("setupenu.dll", OLDMESS, "FModelessDlgProc", 0, "")
  682.     
  683.     CheckForOld1:
  684.     cursor% = ShowWaitCursor()
  685.     OldFilePath$ = FindFileUsingFileOpen("qtim.dll")
  686.     RestoreCursor cursor%
  687.     IF (OldFilePath$ <> "") THEN
  688.         j% = RemoveOldQTFiles(OldFilePath$)
  689.         IF j% = FILES_REMOVED THEN
  690.             GOTO CheckForOld1
  691.         END IF
  692.     END IF
  693.  
  694. CheckForOld2:
  695.     cursor% = ShowWaitCursor()
  696.     OldFilePath$ = FindFileUsingFileOpen("qtimcmgr.dll")
  697.     RestoreCursor cursor%
  698.     IF (OldFilePath$ <> "") THEN
  699.         j% = RemoveOldQTFiles(OldFilePath$)
  700.         IF j% = FILES_REMOVED THEN
  701.             GOTO CheckForOld2
  702.         END IF
  703.     END IF
  704.  
  705.     GetLocalHardDrivesList "HardDrives"
  706.     NumDrives% = GetListLength("HardDrives")
  707.  
  708.     IF (NUMDRIVES% > 0) THEN
  709.         FOR i% = 1 TO NumDrives% STEP 1
  710.             CurrentDrive$ = GetListItem("HardDrives",i%) + ":\"
  711.             CheckForOld3:
  712.                 cursor% = ShowWaitCursor()
  713.                 OldFilePath$ = FindFileInTree("qtim.dll",CurrentDrive$)
  714.                 RestoreCursor cursor%
  715.                 IF (OldFilePath$ <> "") THEN
  716.                     j% = RemoveOldQTFiles(OldFilePath$)
  717.                     IF j% = FILES_REMOVED THEN
  718.                         GOTO CheckForOld3
  719.                     END IF
  720.                 END IF
  721.  
  722.             CheckForOld4:
  723.                 cursor% = ShowWaitCursor()
  724.                 OldFilePath$ = FindFileInTree("qtimcmgr.dll",CurrentDrive$)
  725.                 RestoreCursor cursor%
  726.                 IF (OldFilePath$ <> "") THEN
  727.                     j% = RemoveOldQTFiles(OldFilePath$)
  728.                     IF j% = FILES_REMOVED THEN
  729.                         GOTO CheckForOld4
  730.                     END IF
  731.                 END IF
  732.         NEXT i%
  733.     END IF
  734.  
  735.     UIPOP 1
  736.  
  737. END FUNCTION
  738.  
  739. FUNCTION RemoveOldQTFiles (FilePath$) STATIC AS INTEGER
  740.  
  741.     RemoveOldQTFiles = FILES_SKIPPED
  742.  
  743.     SPLITPATH FilePath$, drv$, dir$, filename$, ext$
  744.     DeadPath$ = drv$ + dir$
  745.  
  746.   rem check version resources if they exist
  747.       szVersion$ = GetVersionOfFile(FilePath$)
  748.  
  749.   rem dialog choices are Remove,Skip ("Continue","Back" buttons)
  750.     SetSymbolValue "EditTextIn", "Foud Version [" + szVersion$ + "] on " + DeadPath$
  751.     sz$ = UIStartDlg("setupenu.dll", NUKEOLD, "FEditDlgProc", 0, "")
  752.     UIPop 1
  753.  
  754.     IF sz$ = "BACK" THEN
  755.         EXIT FUNCTION
  756.     END IF
  757.  
  758.     IF sz$ <> "CONTINUE" THEN
  759.         EXIT FUNCTION
  760.     END IF
  761.  
  762.     rem all versions
  763.         RemoveFile MakePath(DeadPath$, "qtim.dll"), cmoForce
  764.         RemoveFile MakePath(DeadPath$, "qtimcmgr.dll"), cmoForce
  765.     rem version 1.0.0
  766.         RemoveFile MakePath(DeadPath$, "qcmc.dll"), cmoForce
  767.         RemoveFile MakePath(DeadPath$, "qtjpeg.dll"), cmoForce
  768.         RemoveFile MakePath(DeadPath$, "qtraw.dll"), cmoForce
  769.         RemoveFile MakePath(DeadPath$, "qtsmc.dll"), cmoForce
  770.         RemoveFile MakePath(DeadPath$, "qtrpza.dll"), cmoForce
  771.         RemoveFile MakePath(DeadPath$, "qtrle.dll"), cmoForce
  772.         RemoveFile MakePath(DeadPath$, "qtcvid.dll"), cmoForce
  773.         RemoveFile MakePath(DeadPath$, "qtrt21.dll"), cmoForce
  774.         RemoveFile MakePath(DeadPath$, "qtvhdw.dll"), cmoForce
  775.     rem version 1.1.x and later
  776.         RemoveFile MakePath(DeadPath$, "mciqtw.drv"), cmoForce
  777.         RemoveFile MakePath(DeadPath$, "qcmc.qtc"), cmoForce
  778.         RemoveFile MakePath(DeadPath$, "qtjpeg.qtc"), cmoForce
  779.         RemoveFile MakePath(DeadPath$, "qtraw.qtc"), cmoForce
  780.         RemoveFile MakePath(DeadPath$, "qtsmc.qtc"), cmoForce
  781.         RemoveFile MakePath(DeadPath$, "qtrpza.qtc"), cmoForce
  782.         RemoveFile MakePath(DeadPath$, "qtrle.qtc"), cmoForce
  783.         RemoveFile MakePath(DeadPath$, "qtcvid.qtc"), cmoForce
  784.         RemoveFile MakePath(DeadPath$, "qtrt21.qtc"), cmoForce
  785.         RemoveFile MakePath(DeadPath$, "navg.qtc"), cmoForce
  786.         RemoveFile MakePath(DeadPath$, "qtiv31.qtc"), cmoForce
  787.     rem version 1.9 and later
  788.         RemoveFile MakePath(DeadPath$, "qtvhdw.qtc"), cmoForce
  789.         RemoveFile MakePath(DeadPath$, "qtyvu9.qtc"), cmoForce
  790.         RemoveFile MakePath(DeadPath$, "qtmsvc.qtc"), cmoForce
  791.         RemoveFile MakePath(DeadPath$, "qtiv32.qtc"), cmoForce
  792.         RemoveFile MakePath(DeadPath$, "qtiyvu9.qtc"), cmoForce
  793.         RemoveFile MakePath(DeadPath$, "qtvhdw.qtc"), cmoForce
  794.         RemoveFile MakePath(DeadPath$, "dhio_dh.qtc"), cmoForce
  795.         RemoveFile MakePath(DeadPath$, "reelmgic.qtc"), cmoForce
  796.  
  797.     RemoveOldQTFiles = FILES_REMOVED
  798.  
  799. END FUNCTION
  800. ''*********************************************************